package com.wuzhishan.news.mapper;

import com.wuzhishan.news.pojo.BlogFollows;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface followMapper {
    /**
     * 用户关注列表查询
     * @param source_id
     * @param pageIndex
     * @param pageSize
     * @return
     */
    List<BlogFollows> selectFollower(@Param("source_id") long source_id, @Param("pageIndex") int pageIndex, @Param("pageSize") int pageSize);

    /**
     * 用户粉丝数量查询
     * @param userId
     * @return
     */
    int fansCount(int userId);

    void saveFollow(BlogFollows follow);

    /**
     * 判断是否关注用户
     * @param source_id
     * @param target_id
     * @return
     */
    BlogFollows isFollow(@Param("source_id") long source_id, @Param("target_id") String target_id);

    /**
     * 关注用户的总数量
     * @param source_id
     * @return
     */
    int followCount(long source_id);

    /**
     * 用户的粉丝信息
     * @param target_id
     * @param pageIndex
     * @param pageSize
     * @return
     */
    List<BlogFollows> selectFans(@Param("target_id") long target_id, @Param("pageIndex") int pageIndex, @Param("pageSize") int pageSize);

    /**
     * 取消关注用户
     * @param source_id
     * @param target_id
     * @return
     */
    int unFollow(@Param("source_id") long source_id, @Param("target_id") String target_id);
}
